var express = require('express');
var router = express.Router();
var xlsx = require('node-xlsx');
var uuid = require('node-uuid');
var Pro = require('../sql/col/pros');
var sql = require('../sql');

/**
 * @api {get} api/pro 获取列表数据
 * @apiDescription 获取列表的数据，可以传递不同的参数以获取数据
 * @apiGroup pro
 * @apiParam { number } limit 每页显示个数 (默认值10)
 * @apiParam { number } count 页码(默认值0)
 * @apiSuccessExample { json }                         Success-Response:
 * {
 *  code :'200',
 *  message: '获取产品列表数据',
 *  data: []
 * }
 * @apiSampleRequest /api/pro
 * @apiVersion 1.0.0
 */
router.get('/', function(req, res, next) {  
  let limit = req.query.limit *1 || 10
  let count = req.query.count *1 || 0
  sql.paging(Pro,{},{_id:0},limit,count).then((data)=>{
    res.send({
      code:'200',
      message:'获取产品列表数据',
      len : data.length,
      data: data
    });
  })
  // res.send('产品相关接口');
});

router.get('/upload',function(req,res,next){
  // res.send('上传产品')
  let fileStr = 'D:/myapp/qfyp_node/admin-app/data.xlsx';
  let fileDate = xlsx.parse(fileStr)
  // res.send(fileDate)
  let proarr = fileDate[0].data;
  // res.send(proarr)
  let arr = [];
  proarr.map((item,index)=>{
    if(index > 0){
      let obj = {
        proid : 'pro_'+ uuid.v1(),
        type:item[0],
        brand :item[1],
        brandimg:item[2],
        proname:item[3],
        rating:item[4] * 1,
        sales:item[5] * 1,
        stok:item[6] * 1,
        price:item[7] * 1,
        oldprice:item[8] * 1,
        flag:item[9] * 1,
        proimg:item[10],
        desc:item[11],
        detail:item[12]
      }
      arr.push(obj)
    }
  })
  // res.send(arr)
  sql.insert(Pro,arr).then(()=>{
    res.send('插入数据成功')
  })
});

/**
 * @api {get} api/pro/detail 获取产品的详情数据
 * @apiDescription 获取产品的详情数据
 * @apiGroup pro
 * @apiParam { string } proid 产品id
 * @apiSuccessExample { json } Success-Response:
 *  {
 *    code: '200',
 *    message: '获取详情的数据',
 *    data: data[0]
 *  }
 *  {
 *    code: '10404', // 10404 状态码自己编辑，随便设定
 *    message: '没有查询到该产品相关数据'
 *  }
 * @apiSampleRequest /api/pro/detail
 * @apiVersion 1.0.0
 */
router.get('/detail', (req, res, next) => {
  // 1. 获取产品的唯一值参数
  const { proid } = req.query; // es6解构赋值
  // 2.依据 proid 查询数据库
  sql.find(Pro, { proid }, { _id: 0 }).then(data => {
    // 3.判断有没有数据
    data.length > 0 ? res.send({
      code: '200',
      message: '获取详情的数据',
      data: data[0]
    }) : res.send({
      code: '10404', // 10404 状态码自己编辑，随便设定
      message: '没有查询到该产品相关数据'
    })
  })
})
module.exports = router;
